package service;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import dao.UserDao;
import entity.User;

@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    /**
     * 用户登录
     *
     * @param user_name 用户名
     * @param password  密码
     * @return 登录结果（true/false）
     */
    public User login(String user_name, String password) {
        User user = new User();
        user.setUser_name(user_name);
        user.setPassword(password);
        User result = userDao.login(user);
        System.out.println("ser:" + result);
        System.out.println("登录成功serivce");
        return result;

    }

    /**
     * 展示所有用户
     *
     * @return 用户列表
     */
    public List<User> showUser() {
        return userDao.showUser();
    }

    /**
     * 展示采购员
     *
     * @return 采购员列表
     */
    public List<User> showPurchaser() {
        return userDao.showPurchaser();
    }

    /**
     * 展示销售员
     *
     * @return 销售员列表
     */
    public List<User> showSeller() {
        return userDao.showSeller();
    }

    /**
     * 用户注册或新增
     *
     * @param user_name  用户名
     * @param password   密码
     * @param role       角色
     * @param sex        性别
     * @param phone      电话
     * @param birth      生日
     * @param createTime 创建时间
     * @return 注册结果（true/false）
     */
    public boolean register(String user_name, String password, int role, int sex, String phone, String birth, Date createTime) {
        User user = new User();
        user.setUser_name(user_name);
        user.setPassword(password);
        user.setRole(role);
        user.setSex(sex);
        user.setPhone(phone);
        user.setBirth(birth);
        user.setCreateTime(createTime);
        boolean result = userDao.insertUser(user);
        if (result) {
            System.out.println("r1");
            return true;
        }
        System.out.println("r2");
        return false;
    }

    /**
     * 用户注册或新增带头像
     *
     * @param user_name  用户名
     * @param password   密码
     * @param role       角色
     * @param sex        性别
     * @param phone      电话
     * @param birth      生日
     * @param createTime 创建时间
     * @param realPath   头像路径
     * @return 注册结果（true/false）
     */
    public boolean register(String user_name, String password, int role, int sex, String phone, String birth, Date createTime, String realPath) {
        User user = new User();
        user.setUser_name(user_name);
        user.setPassword(password);
        user.setRole(role);
        user.setSex(sex);
        user.setPhone(phone);
        user.setBirth(birth);
        user.setCreateTime(createTime);
        user.setPhoto(realPath);
        boolean result = userDao.insertUserWithHead(user);
        if (result) {
            System.out.println("r1");
            return true;
        }
        System.out.println("r2");
        return false;
    }

    /**
     * 用户删除
     *
     * @param id 用户编号
     * @return 删除结果
     */

    public boolean deleteUser(int id) {
        return userDao.deleteUser(id);
    }

    /**
     * 用户修改
     *
     * @param user 用户实体
     * @return 修改结果
     */
    public boolean updateUser(User user) {
        boolean result = userDao.updateUser(user);
        if (result) {
            System.out.println("r1");
            return true;
        }
        System.out.println("r2");
        return false;
    }

    /**
     * 根据用户id查询用户数据
     *
     * @param id 用户编号
     * @return 用户实体
     */
    public User selectUserById(int id) {
        return userDao.selectUserById(id);
    }
}
